<?php

declare(strict_types=1);

namespace App\Repositories;

use App\Models\UserModel;

class AuthRepository
{
    public function __construct(private UserModel $userModel = new UserModel) {}

    /**
     * Consulta la información de acceso de un usuario desde el valor de una columna.
     */
    public function findCredentialsByColumn(string $column, string $value): ?array
    {
        return $this->userModel->reset()
            ->select('id, password, is_active')
            ->where($column, $value)
            ->first();
    }

    /**
     * Consulta la información de un usuario autenticado.
     */
    public function findUserAuthById(string $id): ?array
    {
        return $this->userModel->reset()
            ->select('users.id, users.username, users.email, roles.name AS role, users.photo')
            ->join('roles', 'users.role_id = roles.id')
            ->where('users.is_active', true)
            ->find($id);
    }
}
